#ifndef SH_CELL_H_
#define SH_CELL_H_

class SH_Chain;

typedef long int SH_State;

class SH_Cell {
public:
	SH_Cell();
	~SH_Cell();
	
	// Методы связывания
	void setCells(SH_Cell *c1,  SH_Cell *c2,  SH_Cell *c3);
	void setChains(SH_Chain *ch1, SH_Chain *ch2, SH_Chain *ch3);
	SH_Cell *getCell(int direction);
	SH_Chain *getChain(int direction);

	// Методы работы с числом в ячейке 
	int get();
	void set(int value);
	
	// Методы работы с вероятным набором чисел
	void appendState(SH_State state);
	SH_State getState();

	
private:
	
	SH_Chain *chain[3];
	SH_Cell *next[3];
	SH_State state;
	int num;

	
};

#endif /*SH_CELL_H_*/
